The invention described herein relates to methods and apparatus for tracking the orientation (also referred to herein as posture) of an object. More particularly, the invention relates to methods and apparatus for tracking the posture of an articulated rigid body. Still more particularly, the invention relates to methods and apparatus for tracking the posture of articulated rigid bodies using quaternion based attitude estimation filtering and displaying the posture of the body.
Embodiments of the present invention are directed towards methods and devices for tracking the orientation (posture) of human bodies. In particular such orientation information can be inserted into a synthetic (computer generated) environment where the motion of the tracked body can become part of the synthetic environment. Previous motion tracking systems of the type known in the art have a number of limitations that substantially limit their usefulness.
Currently available motion tracking technologies are limited by their reliance on a generated signal and/or the need to have the tracked body remain in sight of fixed stations positioned around a working volume. In either case there is a requirement to maintain some type of link over a distance. Regardless of the type of signal used, it can be generally referred to as a xe2x80x9csource.xe2x80x9d Usually, the effective range over which the link may be maintained is limited. Moreover, data update rates may be limited by the physical characteristics of the source used. Additionally, interference with, or distortion of, the source can result in erroneous orientation measurements. If the link is broken, a complete loss of track will result.
One type of tracking system known in the art is the so-called mechanical tracking system. Such systems use an artificial exo-skeleton, which is worn by the user of a synthetic environment (typically, a computer-created simulated environment). Sensors (e.g., goniometers) within the skeletal linkages of the exo-skeleton have a general correspondence to the actual joints of the user. Joint angle data is fed into kinematic algorithms that are used to determine body posture and limb position. However, since the exo-skeleton is worn by the user, other systems must be used to ascertain the position of the user within the simulated environment. Such systems are fraught with numerous drawbacks. For one, aligning the goniometers with the joints of a human body is difficult, especially with multiple degree of freedom (DOF) joints. Additionally, the joints of the exo-skeleton cannot perfectly replicate the range of motion of the joints of a human body. Thus, such technologies can provide only a rough approximation of actual body movement. Another limitation stems from the fact that human bodies are of different sizes and dimensions. As a result, the exo-skeleton must be recalibrated for each user. Yet another limitation is imposed by the encumbrance of the exo-skeleton itself. The weight and awkward configuration of the exo-skeleton prevent a human user from interacting with his environment in a natural manner. As a result, it is unlikely that the user will become immersed in the synthetic environment in the desired manner.
Another widely used system is a magnetic tracking system. In such systems a large magnetic field is generated and calibrated. The user has many small sensors mounted at various points on his body. The sensors are sensitive to the generated magnetic field. Thus, changes in position and orientation of the users body with respect to the generated magnetic field can be detected by the magnetic sensors. Some of drawbacks of such systems include very short range and difficulty in calibrating the generated magnetic field. The short range stems from the fact that magnetic fields decrease in power inversely with the square of the distance from the generating source. This restricts the use of such systems to areas about the size of a small room. In order to use a larger working area, user movement must be modified or scaled in some manner. As a result, the magnitude and frequency of position and orientation errors increase rapidly. Additionally, the presence of ferromagnetic material (like the metal in belt buckles or weapons) distorts the generated magnetic fields. Additionally, the magnetic sensors pick up noise from other magnetic fields generated in or near the environment. Unfortunately, these distorting magnetic fields are commonplace, being easily generated by a plethora of devices, including computer monitors, fluorescent lighting, powered electrical wiring in the walls, as well as many other sources. Additionally, other sources of magnetic field error exist. Only with the aid of extremely detailed look-up tables can even moderately accurate measurements be obtained. Thus, magnetic tracking based on a generated magnetic field is subject to positional and orientation inaccuracies which are highly variable and unpredictable.
Another system for detecting position and orientation of a body uses so-called optical sensing. Optical sensing, in general, covers a large and varying collection of technologies. All of these technologies depend on the sensing of some type of light to provide position and orientation information. Consequently, all of these technologies are subject to inaccuracies whenever a required light path is blocked. Additionally, these technologies suffer from interference from other light sources. All of these optical sensing systems require specially prepared environments having the necessary emitters and sensors. This prevents widespread usage and presents a significant and expensive limitation.
Yet another approach is a tracking system using acoustic trackers. Like the previously described magnetic trackers, such systems are limited in range due to the inherent limitations of sound propagation. Additionally, the physics of sound limit accuracy, information update rate, and the overall range of an acoustic tracking system. Moreover, due to the relatively directional nature of sound, clear lines of sight must be maintained in order to obtain accurate readings. Additionally, due to the relatively slow speed of sound, there are latency problems with such acoustic sensor systems. As is evident from the foregoing discussion, conventional approaches for the tracking of body orientation have some serious limitations.
In accordance with the principles of the present invention, systems, method, and apparatus for body tracking is disclosed. A method embodiment for tracking the orientation of a sensor comprises measuring an angular velocity of the sensor to generate angular rate values which are integrating and normalizing to produce an estimate of sensor orientation. The method continues by measuring a local magnetic field vector and measuring local gravity vector and correcting the estimate of sensor orientation using the local magnetic field vector and local gravity vector.
Another method embodiment comprises measuring an angular velocity of the sensor to generate an angular rate quaternion, integrating and normalizing the angular rate quaternion to produce an estimated sensor orientation quaternion. The local magnetic field vector and local gravity vector are measured. A measurement vector is determined from the local magnetic field and local gravity vectors. A computed measurement vector is calculated from the estimated sensor orientation quaternion and comparing with the measurement vector to generate an error vector that defines a criterion function. The criterion function is minimized and an error estimate quaternion is output. The error estimate quaternion is integrated and normalized to produce a new estimated sensor orientation quaternion which can be output as a sensor orientation signal. The entire process is repeated except that the new estimated sensor orientation quaternion is used for calculating a computed measurement vector. The process continues until tracking is no longer desired.
Another method embodiment of tracking the orientation of a sensor comprises providing a starting estimate of sensor orientation, measuring the local magnetic field vector and measuring the local gravity vector. A measurement vector is determined from the local magnetic field vector and the local gravity vector. A computed measurement vector is calculated from the estimate of sensor orientation and compared to the measurement vector to generate an error vector that defines a criterion function. A Gauss-Newton iteration is performed, resulting in a minimized criterion function generating an error estimate that is integrated and normalized to produce a new estimate of sensor orientation. As with the forgoing embodiment, the entire process is repeated except that the new estimate of sensor orientation is used for calculating a computed measurement vector. The process continues until tracking is no longer desired.
Yet another method of tracking the orientation of a sensor comprises providing a starting estimate of sensor orientation quaternion measuring a local magnetic field vector and a local gravity vector and determining a measurement vector from the local magnetic field vector and the local gravity vector. A computed measurement vector is calculated from the estimate of sensor orientation, using quaternion mathematics.
The measurement vector is compared with the computed measurement vector to generate an 6xc3x971 error vector that defines a criterion function and a mathematical operation is performed that results in the minimization of the criterion function and outputs a 4xc3x971 quaternion error estimate. The quaternion error estimate is integrated and normalized to produce a new estimated sensor orientation quaternion. The entire process is repeated except that the new estimated sensor orientation quaternion is used for calculating a computed measurement vector. The process continues until tracking is no longer desired.
A method for determining a local gravity vector values comprises, moving the sensor from a start point to an end point over a time period; taking measurements of the total acceleration vector during the time period, time weighted summing the measurements of the acceleration vector over the time period, and calculating gravity vector values using the summed total acceleration measurements.
Embodiments of the invention also include sensor apparatus comprising a magnetic field detector configured to measure a magnetic field vector and output a local magnetic field vector signal and an acceleration detector configured to detect a local gravitational field vector and output a local gravitational field vector signal. A related embodiment further includes an angular velocity detector configured to detect an angular velocity vector of the sensor and output angular velocity signal.
Embodiments of the invention include a system for tracking the posture and orientation of body, the system comprising a body having mounted thereon at least one sensor, each sensor including a magnetometer for measuring a magnetic field vector and a acceleration detector for measuring a body acceleration vector, and at least one processor for receiving input from the magnetometer and acceleration detector and using said input to calculate a local magnetic field vector and a local gravity vector and to determine the orientation of the body. The processor of the system can be further configured to correct for offset between body coordinates and sensor coordinates. The system can further include a display for displaying the position and orientation of the body with respect to a synthetic environment. Further embodiments use sensors that include angular velocity detectors.
Other aspects and advantages of the invention will become apparent from the following detailed description and accompanying drawings which illustrate, by way of example, the principles of the invention.